Using channel concepts to control computer networking

ABSTRACT

Described is a system and method that use the concept of channels by which computer users select an appropriate set of network settings maintained in the computer system for a particular network. Upon selection, the corresponding settings are automatically applied by the system. A channel manager manages sets of network settings for various networks, including ad hoc networks, wherein each set contains the information that is necessary to connect to a network. A user interface allows selection of a channel, e.g., via a friendly name. The network settings may be stored in files to allow users to easily copy settings. Complex channels are capable of connecting to different networks at different times in a priority ordering, depending on network availability. The channel manager is able to determine the current channel from current network settings. Metadata may be received and displayed in conjunction with the channel-related user interface.

FIELD OF THE INVENTION

The invention relates generally to computer systems, and moreparticularly to computer networking settings.

BACKGROUND

Contemporary computers expose a bewildering array of networking settingsto the user. For example, to use an 802.11 wireless network, a user isable choose between connecting directly to other computers (in an ad-hocmode) and connecting to an access point of a larger network. If multiplenetworks are available, the user is also able to decide to which networkto connect, and decide what security credentials and passwords topresent to get access to that network. An encryption key may also haveto be entered.

However, many users are not aware of the networks that are available tothem, and/or are not capable of selecting a desired network. By way ofexample, many users are unaware that their computers are able to connectdirectly to other computers in an ad-hoc mode using wireless networkadapters. Thus, two users that have laptops in close proximity to oneanother and who wish to exchange data often resort to non-networked dataexchange, or limit themselves to communicating in areas where bothconnect to a wireless access point (e.g., a wireless hotspot) where theycan send email.

Moreover, many of the networking choices involve tradeoffs that aresomewhat difficult to explain to users. For example, when a userdisconnects from a wireless access point that has Internet access, inorder to connect to an ad-hoc network of computers, it means that theuser loses e-mail access, because the ad-hoc network is not connected tothe Internet.

In sum, changing networks requires knowledge of available networks,along with the ability to change networking settings, which is a taskthat is not easy for many computer users to learn or carry out. In fact,even sophisticated users that are aware of the available networks andthe tradeoffs are burdened when frequently changing settings, by havingto determine and enter the necessary information to connect to anetwork. What is needed is a better way for computer users to connect tonetworks.

SUMMARY OF THE INVENTION

Briefly, the present invention is directed towards a system and methodthat use the concept of “channels” to help computer users select anappropriate set of network settings that are maintained in the computersystem for a particular network. The settings are then automaticallyapplied by the system, e.g., some settings are sent to the network card,credentials are provided to the network, and so forth. Note that by theterms “channel” or “channels,” it is meant conceptually as something auser changes to select and make a network connection, rather than aparticular wireless networking frequency in the unlicensed band, forexample.

In one implementation, a channel manager manages a collection of sets ofnetwork settings for various networks, wherein each set substantiallycontains the information that is necessary to connect to a network. Tohelp the user manage the network settings, the channel manager presentsvia a user interface each network as one channel of a set of one or morechannels, with each channel having a friendly name, for example. Bypresenting choices to the user in the form of channels, the user is ableto choose a suitable network for a given purpose, for example, an“Internet” channel to connect to the Internet, a “Public” (or “Shared”)channel to connect to any nearby users, or a “Corporate” channel toconnect in a secure manner to the users' corporate network. Anadvantageous type of user interface is one that allows selection of onlyone channel, to visibly indicate that selection of one channel/networkdisconnects the user from another network.

To change the network in response to a channel selection request, thechannel manager communicates with a network driver to provide it withthe corresponding settings.

The network settings may be stored in a file system, with one file foreach channel. This allows users to easily copy settings, including bynon-networked means such as floppy disks, USB drives, or infrared filecommunication. The channel manager also maintains a master structure forkeeping information about the files, which may comprise another file,and/or a directory structure.

There may be different types of channels, including a simple channelthat is able to establish a connection to one specific network, and acomplex channel that is capable of connecting to different networks atdifferent times, depending on which one of its corresponding networks isavailable. A complex channel may have a priority order for attemptingconnections.

Other aspects of the present invention include the channel manager beingable to determine the current channel from current network settings, andthe ability to receive and display metadata in conjunction with thechannel-related user interface. Metadata can be used for many purposes,including describing a network, posting information, and providing thesettings for connecting to another network.

Other advantages will become apparent from the following detaileddescription when taken in conjunction with the drawings, in which:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram generally representing a computing environmentinto which the present invention may be incorporated;

FIG. 2 is a block diagram generally representing components and data ina computer system for providing channels that represent networksettings, in accordance with various aspects of the present invention;

FIGS. 3 and 4 are representations of user interfaces that allowselection of only one channel at a time, for connecting to acorresponding network, in accordance with various aspects of the presentinvention;

FIG. 5 is a block diagram generally representing the concept of acomplex channel, in accordance with various aspects of the presentinvention;

FIG. 6 is a flow diagram generally representing logic for connecting toa network, in accordance with various aspects of the present invention;and

FIG. 7 is a representation of user interface elements showing achannel-based mechanism for selecting a set of network settings, examplemetadata received on a channel, and a list of available networks, inaccordance with various aspects of the present invention.

DETAILED DESCRIPTION Exemplary Operating Environment

FIG. 1 illustrates an example of a suitable computing system environment100 on which the invention may be implemented. The computing systemenvironment 100 is only one example of a suitable computing environmentand is not intended to suggest any limitation as to the scope of use orfunctionality of the invention. Neither should the computing environment100 be interpreted as having any dependency or requirement relating toany one or combination of components illustrated in the exemplaryoperating environment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with the invention include,but are not limited to: personal computers, server computers, hand-heldor laptop devices, tablet devices, multiprocessor systems,microprocessor-based systems, set top boxes, programmable consumerelectronics, network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, and so forth, whichperform particular tasks or implement particular abstract data types.The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in local and/or remotecomputer storage media including memory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of acomputer 110. Components of the computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

The computer 110 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by the computer 110 and includes both volatile and nonvolatilemedia, and removable and non-removable media. By way of example, and notlimitation, computer-readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer-readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canaccessed by the computer 110. Communication media typically embodiescomputer-readable instructions, data structures, program modules orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of the any of the above should also beincluded within the scope of computer-readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136 and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media, described aboveand illustrated in FIG. 1, provide storage of computer-readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146 and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers herein to illustrate that,at a minimum, they are different copies. A user may enter commands andinformation into the computer 110 through input devices such as atablet, or electronic digitizer, 164, a microphone 163, a keyboard 162and pointing device 161, commonly referred to as mouse, trackball ortouch pad. Other input devices not shown in FIG. 1 may include ajoystick, game pad, satellite dish, scanner, or the like. These andother input devices are often connected to the processing unit 120through a user input interface 160 that is coupled to the system bus,but may be connected by other interface and bus structures, such as aparallel port, game port or a universal serial bus (USB). A monitor 191or other type of display device is also connected to the system bus 121via an interface, such as a video interface 190. The monitor 191 mayalso be integrated with a touch-screen panel or the like. Note that themonitor and/or touch screen panel can be physically coupled to a housingin which the computing device 110 is incorporated, such as in atablet-type personal computer. In addition, computers such as thecomputing device 110 may also include other peripheral output devicessuch as speakers 195 and a printer 196, which may be connected throughan output peripheral interface 194 or the like.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160 or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

Channels to Control Computer Networking

The present invention is generally directed towards a system and methodby which computer users are shielded from the complexity of networksettings by the use of channel-related concepts. In general, a “channel”is a selectable entity that is associated with the set of requiredtechnical and security information needed to connect to one network.Thus, the term “channel” as used herein is not synonymous with thefrequency that a wireless device happens to be using for networkcommunication, but rather is directed towards the concept of being ableto turn to a given “channel” to obtain a certain network connection inplace of any other, somewhat like a television set's channel beingswitched to show one program instead of another program. For example,most computer users are familiar with the concept of televisionchannels, including that a user can quickly select among availablechannels, and that in general a typical television set only shows oneprogram/channel at a time. With the present invention, users can quicklyselect among available networks, yet only selecting one network at atime. While not a perfect analogy to broadcast television channels,(which are frequency-based, whereas the present invention deals withpotentially multiple settings that does not necessary correspond to anyparticular wireless frequency), the channel concept applied tonetworking is a good metaphor for most computer users.

As will be understood, numerous ways to implement the present inventionare feasible, and only some of the alternatives are described herein.For example, in one implementation, a computer program maintains thesettings for the various individual networks in corresponding individualfiles of a file system. One benefit of this type of storage is thatcomputer users are familiar with exchanging files, and thus one user caneasily provide other users with a network's settings, or transfernetwork settings to another computer, simply by providing a file.However, other mechanisms for storing networking settings are feasible,e.g., in a single file, in a database, and so forth. Further, thepresent invention is primarily described with reference to wirelessnetworks generally, and thus works with 802.11 networks,ultra-wideband-based networks, GPRS networks, and so forth. As such, thepresent invention is not limited to any particular examples used herein,but rather may be used in various ways that provide benefits andadvantages in computing in general.

Turning to FIG. 2, in one example implementation, a computer programcomprising a channel manager 202 manages a possibly complex collectionof network settings for various networks. For any given network, suchsettings may include a network name (e.g., SSID), one or morefrequencies or frequency ranges, a password, a user identity, anycertificates to exchange, whether encryption is present or not, (and ifso encryption key-related data), billing information, and so forth;essentially whatever information that is necessary to connect to anetwork. Note that for protection, a user may elect to independentlysupply some security information such as a password, and thus someinformation beyond the settings may be needed to establish a connection.

In accordance with various aspects of the present invention, to help theuser manage the network settings, the channel manager 202 presents eachnetwork as one channel of a set of one or more channels 204 ₁-204 _(N),hiding the details of the various network settings 206 ₁-206 _(N) behindthe channel representations 204 ₁-204 _(N). In one implementation, thechannel has a friendly name, e.g., assigned by the user, whereby eachchannel 204 ₁-204 _(N) essentially may comprise a named mapping to a setof network settings for a given network. In other implementations someor all of the channels may comprise an object or the like that includes(or accesses as needed) the network settings, and can execute methodsnecessary to use those settings to make the network connection.

By presenting choices to the user in the form of channels, the user isable to choose a suitable network for a given purpose, for example, an“Internet” channel to connect to the Internet, a “Public” (or “Shared”)channel to connect to any nearby users, a “Corporate” channel to connectin a secure manner to the users' corporate network, and so forth. Inaddition to making the user's choice simple and self-explanatory,because the concept of switching channels implies that a user can be ononly one network at a time, users are not surprised to discover thataccess to Internet web sites may be lost when switching away from the“Internet” channel to another channel. Note that certain channels suchas the Public channel may be predefined, and for example, be providedwith new computer systems.

As further represented in FIG. 2, the channel manager 202 includes or isassociated with a user interface component 208 to allow the user tocontrol the operation of the channel manager 202. For example, topresent available channels to the user, the user interface 208 queriesfor or otherwise receives a list of available channels via the channelmanager 202. The user interface 208 may also request that the channelmanager 202 change the channel, that is, connect to another network,such as in response to a user request or some other occurrence. Forexample, a scheduled event may change the channel and correspondingnetwork, or a program that needs a particular network may automatically(or in conjunction with a prompt) change the channel during launch orexecution; closing the program may automatically reset the networksettings.

To change the network in response to a channel change request, in oneimplementation, the channel manager 202 has access to the system'snetworking mechanism (e.g., a network driver 210 and/or othercomponents) that is capable of accepting settings in order to connect toa network. The channel manager 202 provides the settings to the networkdriver in response to the request, and an attempt to connect to the newnetwork is made. Note that the channel manager 202 may obtaininformation about which networks are currently available, and hide orotherwise disable (e.g., gray out) channels that cannot be connected toat the current time.

The user interface 208 may present a visual representation that lookslike other kinds of well-known channel changers. For example, FIG. 3shows a channel change mechanism 330 of the user interface 208 thatreminds the user of a channel dial, except that on typical computersystems the user switches the dial via a pointing device or keyboard keycombination rather than physically turning a knob. FIG. 4 shows radiobuttons 440, which are familiar to computer users, (and are actuallynamed as such based on an old-style radio station selector wherein onlyone selection at a time is possible). An advantage to these types ofselectors is that the user interface reflects the fact that connectingto one network also implies disconnecting from another connectednetwork, if any, e.g., a user cannot turn the dial 330 to two differentchannels, or force the radio button selector to two different selectionsat the same time.

Note that although such mutually-exclusive user interface mechanisms doconvey information, other types of user interface mechanisms arefeasible. For example, drop-down menu-like lists and similar lists maybe provided that allow the user to select only one channel. A user mayalso type in characters, with an accompanying list of channels beingnarrowed as more characters are entered, until the user indicates insome way that one channel is to be selected.

In general, a channel has a friendly name (like “The Public Channel” or“The XYZ Corporate Network”) that may be named and/or renamed by theuser. Users may manually configure the settings, and then via the userinterface 208 provide the channel manager 202 with a name to associatewith the current settings. Channels also may be copied from othercomputers; although no particular format is necessary, a file of dataformatted according to an XML schema is one suitable format formaintaining and/or transferring the settings, and is also extensible forfuture types of network settings.

Returning to FIG. 2, the channel manager 202 is responsible formaintaining the network settings 206 ₁-206 _(N), for providing a list ofnamed channels to the user interface component 208 and for applying thesettings to the network driver 210. The channel information can bestored in many different ways, however one advantageous way is to useone data file (in a file system volume) per channel, with the channelinformation for its associated network serialized in the file. As can bereadily appreciated, by keeping the settings in individual files, evennon-sophisticated users can copy settings, including when no network isavailable, e.g., by floppy disk, USB drives, infrared communication, andthe like. Note that this allows a bootstrap type of behavior, e.g.,using a relatively slow connection such as infrared to communicatechannel settings, and then once the settings are installed, the channelcan be selected to use the relatively faster network connection. Furthernote that such exchanges of file settings that are performed in anon-networked manner provide some level of security, e.g., any keys areonly communicated to others by physical medium for floppy disk or USB,or to users in the line of sight for infrared.

Along with the files of settings, in one implementation the channelmanager 202 maintains a master structure for keeping information aboutthe files. For example, the master structure 212 may comprise a list inthe form of a single master file with the full list of channels and anyappropriate metadata. A directory can also be used as the master list212. In general, the channel manager 202 maintains this master list 212,and can use it to provide the user interface 208 with the channels thatare available, e.g., on request. Note that a hierarchy of one or moresubdirectories may be used for containing the channel-related files,which the channel manager may monitor or occasionally (e.g., at startup) enumerate to automatically know when a file is changed, e.g., whenthere is a file add, delete or rename. In this way, changes can occurwhen the channel manager is not running, yet the channel manager becomesaware of any changes when next run.

The use of files also provides another opportunity, namely automaticreconfiguration of network settings for appropriate users. By way ofexample, a corporation can provide the settings that allow employees toshare files and/or collaborate in a secure way outside of the corporatenetwork by providing network settings for employees to use, with thesettings including an encryption key. The corporation can change the keyas desired (e.g., monthly), by downloading the file to employee'scomputers, e.g., to automatically update it as necessary whenever theylogon. Then, employees wishing to securely share data can switch to thecorporation's private sharing channel whenever desired.

Turning to an example usage of the present invention, consider twofriends meeting in a park or other location where wireless internetaccess is not necessarily available. If the friends decide to exchangefiles, they can both bring up a “channel changer” program, i.e.,corresponding to the channel manager 202 and its associated userinterface 208, and thereby switch to an ad-hoc network channel, such asthe “Public” channel. The user interface 208 may show each friend a listof all of the people in radio range who are tuned to the “Public”channel, including each other. The users may then exchange files. Notethat more than two users can participate, and that the users may electto configure and use a more private ad-hoc network channel, such as onethat uses encryption; the encryption key may be maintained among thesettings for that private channel. Other usages that can be accomplishedwith ad-hoc networking include playing multiplayer games, collaboratingwith other users, viewing presentations, and so forth. When finished,users may simply switch their machines back to another channel, such asthe “Internet” channel, as desired.

In accordance with another aspect of the present invention, there may bedifferent types of channels. For example, a simple channel is one typeof channel, generally described thus far, which is able to establish aconnection to one specific network. A complex channel is another type,and while capable of connecting to only one network at a time, iscapable of connecting to different networks at different times,depending on which one of those networks is available. Moreparticularly, a complex channel is associated with multiple sets ofsettings corresponding to multiple networks, and when selected, trieseach network out in priority order until a connection is successfullyachieved, or no set of settings remains to attempt. Note that a priorityorder is not required, as the user can simply just provide various setsof network settings in a random pattern, however in one implementationthe present invention attempts connections in order, thus giving theuser the ability to prioritize.

As described above, for a simple channel, to change the channel tochannel X, the channel manager 202 “asks” channel X for its associatedsettings, e.g., by opening a network settings file associated withchannel X and reading the settings in. The settings are then applied tothe network driver 210. Note that the channel may be an object that iscapable of opening the file to contain the settings internally, but maymore simply comprise a straightforward mapping reference that allows thechannel manager 202 to locate the file (or other collection of thenetwork settings) from the channel's metadata. For a simple channelthere is one group of settings as generally described above; the channelmanager 202 sends those settings to the network driver 210 to cause itto connect to the new network.

FIG. 5 represents a complex channel 550 in which there are multiplegroups of settings 552 ₁-552 _(M), each group corresponding to onenetwork of a plurality of networks. An example of a complex channel forthe internet may be one that has settings for a work network, a homenetwork, a free network, and a pay network. The channel manager 202sends the first of these groups to the network driver 210 to attempt toconnect to the first network. If that fails, the channel manager 202tries the next group of settings, and so on until one succeeds or allnetworks are unavailable. Note that the network driver 210 can tell thechannel manager 202 what is available, to thereby filter out attemptsthat will not work, and can also tell the channel manager 202 when asuccessful connection is established. Further, note that an attempt maybe made to create an adhoc network (e.g. Public) in the event that nonetwork is available.

FIG. 6 summarizes the attempt process. Note that FIG. 6 works for asimple channel as well as a complex channel, with a simple channelhaving only one set of settings to attempt. Thus, step 602 representsretrieving the settings of the requested channel, which for a simplechannel is the only set, or is the first set of settings (e.g., inpriority order) for a complex channel. Step 604 represents the channelmanager 202 sending those settings to the network driver.

Step 606 evaluates the success of the attempt, which may include somesuitable delay to give the network driver time to establish aconnection, have credentials verified, and so forth. The user mayspecify the delay, or the system may learn one based on actual resultsor results known from similar types of settings. If successfullyconnected, step 606 ends the connection-attempt process.

If not successfully connected at step 606, step 608 represents lookingfor additional settings to apply. If there are none, such as in the caseof a simple channel or a complex channel once all settings have beenattempted, step 608 branches to step 612, which represents notifying theuser of the inability to connect on the desired channel. Note that somenumber of retries may be attempted before the prompt is given.

If there is another set of settings to attempt at step 608, step 610requests retrieving the next set, which continues in the priorityordering. Step 610 returns to step 604 to attempt the next settings, andthe process repeats until a successful connection is detected at step606, or no settings remain to attempt at step 608. Note that an actualattempt need not be made if the channel manager knows from otherinformation that the corresponding network is not available, such asknown from the driver 210.

Turning to another aspect of the present invention, it is possible thatthe user or system has changed a network setting outside of the channelmanager, e.g., the user may manually make a change, or the system mayapply default settings following a reboot. In many instances, thechannel manager 208 is able to determine a channel corresponding to thecurrent network settings. To this end, the channel manager 202 asks thenetwork driver 210 for the current settings. The channel manager 202then iterates through its channels, looking for a channel with matchingsettings. If found, that channel is considered to be the currentchannel. In the event that a matching channel is not found, the user canbe asked whether a channel should be named and maintained for thecurrent settings, e.g., to allow a user to make changes and associate anew channel with the changed settings.

Another aspect to the present invention involves metadata that may bereceived while the user is tuned to a particular channel, or in generalmay be received by the wireless networking system from accessiblenetworks. By way of example, FIG. 7 shows how a channel-related userinterface 770 that allows channel selection via a radio-button mechanism774 can also display text or other data representing metadata receivedwhile on that channel. Note that if the user interface is properlyconfigured, the user may select a link in the metadata to obtain adifferent set of metadata, or run a program such as by hosting a browsercontrol, to obtain more information from the connected network.

Metadata can be used for many purposes, including describing a network(e.g., our network is for playing poker, these are the rules we areusing), or posting information (e.g., car for sale, 2004 model X, emailhere for more information). A channel may be provided for the purpose ofposting to and reading from a bulletin board. The information can alsoinclude the settings for connecting to another network, such as apremium network having more information. Contact information/a socialnetwork may also be obtained via a channel. For example, a channel maybe defined for a project-related network. Such a network may besearched, such as to find employees working on that project, todetermine an email list.

Moreover, a list 774 of other currently available wireless networks maybe presented to the user, including networks for which the user does nothave a defined channel. Note that while the ability to see availablenetworks exists today, available networks may be tied to the channelconcepts of the present invention. For example, in FIG. 7, the user maybe shown an indication that a given network is currently connected, andthat another network is available for which the user has a channel, suchas known from a previous connection thereto. Note that such a userinterface 770 can be configured by the user to not show availablenetworks, and only show the user's channels. Additional information frommetadata obtained via networks that are available but non-connected alsomay be displayed in the channel user interface 770. Normally suchadditional metadata is filtered, but is received and is thusdisplayable; further if the network corresponds to a channel,information known to the system about the channel may be displayedinstead of or in addition to metadata related to that channel.

As can be seen from the foregoing detailed description, there isprovided a method and system that uses channels to hide the complexityof network settings and make changing network settings easier. Thispresent invention thus makes a very complex task significantly easierfor computer users.

While the invention is susceptible to various modifications andalternative constructions, certain illustrated embodiments thereof areshown in the drawings and have been described above in detail. It shouldbe understood, however, that there is no intention to limit theinvention to the specific forms disclosed, but on the contrary, theintention is to cover all modifications, alternative constructions, andequivalents falling within the spirit and scope of the invention.

1. In a computing environment, a method comprising: displaying, in auser interface on a display device, a collection of channels whereineach channel corresponds to a different type of network, the collectionof channels comprising at least an Internet channel for connecting tothe Internet and a public channel for connecting to nearby users,wherein one or more sets of network settings are associated with each ofthe channels, wherein each of the one or more sets of network settingsis stored in a single file such that a channel may be added to thecollection of channels by receiving a new file; upon a user selectingone of the channels displayed in the user interface, accessing the filecorresponding to a first set of network settings associated with theselected channel and applying the first set of network settings from thefile to connect to the type of network corresponding to the selectedchannel; after connecting to the type of network corresponding to theselected channel, detecting that the user has changed a network settingmanually; querying the network driver for current network settings;receiving the current network settings from the network driver; andcomparing the current network settings to the network settingsassociated with each channel to determine whether the current networksettings correspond to one of the network settings associated with oneof the channels such that upon determining that the current networksettings do not correspond to any of the network settings associatedwith each channel, the user is prompted to store the current networksettings as the network settings for a new channel.
 2. The method ofclaim 1 wherein applying the first set of network settings to connect tothe type of network corresponding to the selected channel comprisescommunicating the network settings to a network driver.
 3. The method ofclaim 1 wherein the channel comprises a simple channel that correspondsto a single set of network settings.
 4. The method of claim 1 whereinthe channel comprises a complex channel that corresponds to a pluralityof sets of network settings, and wherein applying the first set ofnetwork settings to connect to the type of network corresponding to theselected channel comprises selecting the first set from the plurality ofsets of network settings and applying the first set of network settings.5. The method of claim 4 wherein the first set is selected based on apriority order and upon connecting with the network using the first setof network settings, making no further attempt to connect to the networkusing the other sets of the plurality of sets of network settings. 6.The method of claim 4 further comprising, obtaining information aboutavailable networks that correspond to the type of network, and whereinthe first set of network settings is selected only when the network thatcorresponds to the first set of network settings is available.
 7. Themethod of claim 1 further comprising, displaying metadata related to achannel in the user interface.
 8. The method of claim 1 furthercomprising, displaying a list of available networks, including providinga visible indication of an available network that corresponds to achannel.
 9. The method of claim 7, wherein the metadata includes networksettings for creating a new channel to connect to a new network.
 10. Themethod of claim 1, further comprising: receiving a new file thatincludes a modified version of the first set of network settingscorresponding to the selected channel; and replacing the existing filethat includes the first set of network settings with the new file suchthat the modified version of the first set of network settings are usedto connect to the type of network corresponding to the selected channel.11. The method of claim 10, wherein the modified version of the firstset of network settings comprises a new encryption key that is used toencrypt data that is sent over the type of network corresponding to theselected channel.
 12. The method of claim 10, wherein the existing fileis stored on a first computer and wherein the new file is transmittedfrom a second computer, and wherein the existing file is replacedautomatically without user intervention at the first computer.
 13. Atleast one computer-readable storage medium having computer-executableinstructions, which when executed perform a method comprising:displaying, in a user interface, a collection of channels wherein eachchannel corresponds to a different type of network, the collection ofchannels comprising at least an Internet channel for connecting to theInternet and a public channel for connecting to nearby users, whereinone or more sets of network settings are associated with each of thechannels, wherein each of the one or more sets of network settings isstored in a single file such that a channel may be added to thecollection of channels by receiving a new file; upon a user selectingone of the channels displayed in the user interface, accessing the filecorresponding to a first set of network settings associated with theselected channel and applying the first set of network settings from thefile to connect to the type of network corresponding to the selectedchannel; after connecting to the type of network corresponding to theselected channel, detecting that the user has changed a network settingmanually; querying the network driver for current network settings;receiving the current network settings from the network driver; andcomparing the current network settings to the network settingsassociated with each channel to determine whether the current networksettings correspond to one of the network settings associated with oneof the channels such that upon determining that the current networksettings do not correspond to any of the network settings associatedwith each channel, the user is prompted to store the current networksettings as the network settings for a new channel.
 14. Thecomputer-readable storage medium of claim 13 wherein the user interfaceallows selection of only one channel at a time.
 15. Thecomputer-readable storage medium of claim 14 further comprising,displaying metadata in association with the user interface.
 16. Thecomputer-readable storage medium of claim 13 further comprising,pre-configuring a computer system with at least one channel andcorresponding network settings.
 17. In a computing environment having anetwork driver, a system comprising: a processor; and memory storinginstructions which when executed by the processor perform a methodcomprising: displaying, in a user interface, a collection of channelswherein each channel corresponds to a different type of network, thecollection of channels comprising at least an Internet channel forconnecting to the Internet and a public channel for connecting to nearbyusers, wherein one or more sets of network settings are associated witheach of the channels, wherein each of the one or more sets of networksettings is stored in a single file such that a channel may be added tothe collection of channels by receiving a new file; upon a userselecting one of the channels displayed in the user interface, accessingthe file corresponding to a first set of network settings associatedwith the selected channel and applying the first set of network settingsfrom the file to connect to the type of network corresponding to theselected channel; after connecting to the type of network correspondingto the selected channel, detecting that the user has changed a networksetting manually; querying the network driver for current networksettings; receiving the current network settings from the networkdriver; comparing the current network settings to the network settingsassociated with each channel to determine whether the current networksettings correspond to one of the network settings associated with oneof the channels such that upon determining that the current networksettings do not correspond to any of the network settings associatedwith each channel, the user is prompted to store the current networksettings as the network settings for a new channel.
 18. The system ofclaim 17 wherein the channel comprises a simple channel that correspondsto a single set of network settings.
 19. The system of claim 17 whereinthe channel comprises a complex channel that corresponds to a pluralityof sets of network settings.